package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.ResumeEmploymentIntention;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2023-09-22 22:03:54
*   @description ResumeEmploymentIntentionSearch      求职意向
*/


@Data
@ApiModel("求职意向ResumeEmploymentIntentionSearch")
public abstract class ResumeEmploymentIntentionSearch<Sub extends ResumeEmploymentIntentionSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "期望职位")
    private String jobLike;
    @ApiModelProperty(value = "求职状态")
    private String statusEq;
    @ApiModelProperty(value = "薪资区间[低]")
    private Integer salaryLowEq;
    @ApiModelProperty(value = "薪资区间[高]")
    private Integer salaryHighEq;
    @ApiModelProperty(value = "薪资单位 0:k:k,1:w:w,2:千:qian,3:万:wan")
    private Integer salaryUnitEq;
    @ApiModelProperty(value = "期望城市")
    private String cityEq;
    @ApiModelProperty(value = "期望行业")
    private String industryEq;
    @ApiModelProperty(value = "期望职位三级")
    private String jobCategoryEq;
    @ApiModelProperty(value = "期望职位三级ID")
    private String jobCategoryIdEq;
    @ApiModelProperty(value = "到岗时间")
    private String timeEq;
    @ApiModelProperty(value = "到岗时间 0:随时:any_time,1:一周内:within_a_week,2:一月内:within_a_month,3:待定:pending")
    private List timeFlagIn;
    @ApiModelProperty(value = "工作类型")
    private String typeEq;
    @ApiModelProperty(value = "工作类型 0:全职:full_time,1:兼职:part_time,2:实习:internship")
    private List typeFlagIn;
    @ApiModelProperty(value = "期望职位一级")
    private String parentCategoryEq;
    @ApiModelProperty(value = "期望职位一级类型")
    private List parentCategoryIdIn;
    @ApiModelProperty(value = "期望职位二级")
    private String secondCategoryLike;
    @ApiModelProperty(value = "期望职位二级类型")
    private List secondCategoryIdIn;
    @ApiModelProperty(value = "求职者id")
    private String kzpStudentIdEq;
    @ApiModelProperty(value = "旧简历id")
    private String oldResumesIdEq;
    @ApiModelProperty(value = "简历id")
    private String resumesIdEq;
    @ApiModelProperty(value = "开始(数据来源)简历创建时间")
    private Date resumeCreateTimeStart;
    @ApiModelProperty(value = "结束(数据来源)简历创建时间")
    private Date resumeCreateTimeEnd;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer verisonEq;

    public ResumeEmploymentIntentionSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return ResumeEmploymentIntention.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return ResumeEmploymentIntention.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return ResumeEmploymentIntention.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return ResumeEmploymentIntention.ID;
    }

    @Override
    public String  toString() {
        return "ResumeEmploymentIntentionSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(ResumeEmploymentIntention.ID, idIn);
        return getSubThis();
    }
    public Sub setJobLike(String jobLike){
        this.jobLike = jobLike;
        setLikeField(ResumeEmploymentIntention.JOB, jobLike);
        return getSubThis();
    }
    public Sub setStatusEq(String statusEq){
        this.statusEq = statusEq;
        setEqualField(ResumeEmploymentIntention.STATUS, statusEq);
        return getSubThis();
    }
    public Sub setSalaryLowEq(Integer salaryLowEq){
        this.salaryLowEq = salaryLowEq;
        setEqualField(ResumeEmploymentIntention.SALARY_LOW, salaryLowEq);
        return getSubThis();
    }
    public Sub setSalaryHighEq(Integer salaryHighEq){
        this.salaryHighEq = salaryHighEq;
        setEqualField(ResumeEmploymentIntention.SALARY_HIGH, salaryHighEq);
        return getSubThis();
    }
    public Sub setSalaryUnitEq(Integer salaryUnitEq){
        this.salaryUnitEq = salaryUnitEq;
        setEqualField(ResumeEmploymentIntention.SALARY_UNIT, salaryUnitEq);
        return getSubThis();
    }
    public Sub setCityEq(String cityEq){
        this.cityEq = cityEq;
        setEqualField(ResumeEmploymentIntention.CITY, cityEq);
        return getSubThis();
    }
    public Sub setIndustryEq(String industryEq){
        this.industryEq = industryEq;
        setEqualField(ResumeEmploymentIntention.INDUSTRY, industryEq);
        return getSubThis();
    }
    public Sub setJobCategoryEq(String jobCategoryEq){
        this.jobCategoryEq = jobCategoryEq;
        setEqualField(ResumeEmploymentIntention.JOB_CATEGORY, jobCategoryEq);
        return getSubThis();
    }
    public Sub setJobCategoryIdEq(String jobCategoryIdEq){
        this.jobCategoryIdEq = jobCategoryIdEq;
        setEqualField(ResumeEmploymentIntention.JOB_CATEGORY_ID, jobCategoryIdEq);
        return getSubThis();
    }
    public Sub setTimeEq(String timeEq){
        this.timeEq = timeEq;
        setEqualField(ResumeEmploymentIntention.TIME, timeEq);
        return getSubThis();
    }
    public Sub setTimeFlagIn(List timeFlagIn){
        this.timeFlagIn = timeFlagIn;
        setInField(ResumeEmploymentIntention.TIME_FLAG, timeFlagIn);
        return getSubThis();
    }
    public Sub setTypeEq(String typeEq){
        this.typeEq = typeEq;
        setEqualField(ResumeEmploymentIntention.TYPE, typeEq);
        return getSubThis();
    }
    public Sub setTypeFlagIn(List typeFlagIn){
        this.typeFlagIn = typeFlagIn;
        setInField(ResumeEmploymentIntention.TYPE_FLAG, typeFlagIn);
        return getSubThis();
    }
    public Sub setParentCategoryEq(String parentCategoryEq){
        this.parentCategoryEq = parentCategoryEq;
        setEqualField(ResumeEmploymentIntention.PARENT_CATEGORY, parentCategoryEq);
        return getSubThis();
    }
    public Sub setParentCategoryIdIn(List parentCategoryIdIn){
        this.parentCategoryIdIn = parentCategoryIdIn;
        setInField(ResumeEmploymentIntention.PARENT_CATEGORY_ID, parentCategoryIdIn);
        return getSubThis();
    }
    public Sub setSecondCategoryLike(String secondCategoryLike){
        this.secondCategoryLike = secondCategoryLike;
        setLikeField(ResumeEmploymentIntention.SECOND_CATEGORY, secondCategoryLike);
        return getSubThis();
    }
    public Sub setSecondCategoryIdIn(List secondCategoryIdIn){
        this.secondCategoryIdIn = secondCategoryIdIn;
        setInField(ResumeEmploymentIntention.SECOND_CATEGORY_ID, secondCategoryIdIn);
        return getSubThis();
    }
    public Sub setKzpStudentIdEq(String kzpStudentIdEq){
        this.kzpStudentIdEq = kzpStudentIdEq;
        setEqualField(ResumeEmploymentIntention.KZP_STUDENT_ID, kzpStudentIdEq);
        return getSubThis();
    }
    public Sub setOldResumesIdEq(String oldResumesIdEq){
        this.oldResumesIdEq = oldResumesIdEq;
        setEqualField(ResumeEmploymentIntention.OLD_RESUMES_ID, oldResumesIdEq);
        return getSubThis();
    }
    public Sub setResumesIdEq(String resumesIdEq){
        this.resumesIdEq = resumesIdEq;
        setEqualField(ResumeEmploymentIntention.RESUMES_ID, resumesIdEq);
        return getSubThis();
    }
    public Sub setResumeCreateTimeStart(Date resumeCreateTimeStart){
        this.resumeCreateTimeStart = resumeCreateTimeStart;
        setDateStartField(ResumeEmploymentIntention.RESUME_CREATE_TIME, resumeCreateTimeStart);
        return getSubThis();
    }
    public Sub setResumeCreateTimeEnd(Date resumeCreateTimeEnd){
        this.resumeCreateTimeEnd = resumeCreateTimeEnd;
        setDateEndField(ResumeEmploymentIntention.RESUME_CREATE_TIME, resumeCreateTimeEnd);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(ResumeEmploymentIntention.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(ResumeEmploymentIntention.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(ResumeEmploymentIntention.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(ResumeEmploymentIntention.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVerisonEq(Integer verisonEq){
        this.verisonEq = verisonEq;
        setEqualField(ResumeEmploymentIntention.VERISON, verisonEq);
        return getSubThis();
    }
}